/**
 * MD5.java    01/03/2012
 */

package l3.info.Projet.Utilitaires;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * Classe utilitaire pour les opérations sur le MD5
 * @author Loïc Martinez
 * @version 1.0
 */

public class Chiffrement {

	/**
	 * Convertie une chaîne en son équivalent MD5
	 * @param chaine, la chaine sur laquelle on veut appliquer
	 *        l'algorithme MD5
	 * @return res, le MD5 de la chaine
	 */
	public static String toMD5(String chaine) {
		
        String res = "";
        String tmp;
        
        try {
            MessageDigest algorithm = MessageDigest.getInstance("MD5");
            algorithm.reset();
            algorithm.update(chaine.getBytes());
            
            byte[] md5 = algorithm.digest();    
            
            for (int i = 0; i < md5.length; i++) {
                tmp = (Integer.toHexString(0xFF & md5[i]));
                if (tmp.length() == 1) {
                    res += "0" + tmp;
                } else {
                    res += tmp;
                }
            }
        } catch (NoSuchAlgorithmException ex) {
        	System.err.println("Problème MD5");
        }
        return res;
    }
	
	/**
	 * Algorithme de cryptage RSA
	 * @param chaine, la chaine à crypter
	 * @return chaine, la chaîne cryptée
	 * TODO : Coder le cryptage
	 */
	public static String crypt(String chaine) {
		return chaine;
	}
	
	/**
	 * Algorithme de décryptage RSA
	 * @param chaine, la chaîne à décrypter
	 * @return chaine, la chaîne décryptée
	 * TODO : Coder le décryptage
	 */
	public static String decrypt(String chaine) {
		return chaine;
	}
	
	/*
	public static void main(String[] args) {
		String chaine = "password";
		System.out.println(toMD5(chaine));
	}
	*/
}
